The present invention relates to Content Management Systems (CMSs), and more specifically, to a scalable parallel messaging process in a CMS.
In a CMS, it is often necessary to exchange event messages with one or more external systems when some particular action occurs, for example, when an item or a document is created. However, for inter-dependent events, this may result in various problems. Inter-dependent (transactional) events refer to events that are triggered and interrelated with each other to complete the whole transaction. The inter-dependent events must be processed in a sequential order to maintain event or data integrity. If the inter-dependent events were to be processed in parallel, a “race condition” could occur, which might violate the event integrity. As an example, a “delete” event might be processed before a “reindex” event.
One possible solution to this problem is to process inter-dependent events in sequential order, but as the skilled person realizes, this becomes a bottleneck in event processing and has a negative impact on the performance scalability of the overall event processing. Thus, there is a need for better techniques for exchanging event messages between a CMS and one or more external systems.